This specification relates to representing and processing co-occurrence constraints on component selection for constructing content items.
The Internet provides access to a wide variety of resources (e.g., images, video and/or audio files, search engines, news portals, gaming websites, social networking sites, as well as individual web pages pertaining to particular subjects). Access to these resources presents opportunities for advertisements to be provided with the resources. For example, a web page can include advertisement slots in which advertisements can be presented. Advertisement slots can be allocated to selected advertisers based on various matching criteria (e.g., keywords, bids, geographic region, time, etc.). Advertisements from the selected advertisers can be presented in the advertisements slots when the webpage is accessed by a consumer.
An advertisement can be a static advertisement that is prepared, stored, and ready for selection to fulfill a subsequently received ad request. The content and format of the static advertisement is stable and does not vary once it has been created.
An advertisement can also be a dynamic advertisement. A dynamic advertisement is constructed on-the-fly according to an ad template when fulfilling a received ad request. The ad template can specify an invariable portion of the content and format for the dynamic ad and one or more component slots in which components that have different content, format, and/or attributes can be selected and applied to create the dynamic ad.
An ad server can have access to a large number of available components of various types and varying content. The available components can be provided, for example, via one or more component feeds. The ad server can select components from among the large number of components, and apply the selected components to the component slots in the ad template according to the specifications of the ad template. Once the dynamic ad is constructed using the selected components, the dynamic ad can be provided to a requesting device to fulfill the received ad request.